#ifndef NODE_H__
#define NODE_H__

//include header
#include <string>

//using namespace
using namespace std;


namespace npInterpreter
{
    //class forward declaration

    class Node // class inheritance
    {
        //friend
        
        //embedded type
        
        public: Node();
        public: virtual ~Node();
        public: Node(const Node& cpy);
        public: Node& operator=(const Node& asn);
        public: Node(Node&& mov) noexcept;
        public: Node& operator=(Node&& mva) noexcept;
        public: virtual Node* clone() const;

        //other constructors

        //public methods
        public: virtual string interpret() throw() = 0;

        //protected methods

        //private methods

        //protected data

        //private data

        //others
    };
} // namespace npInterpreter


#endif //NODE_H__
